package com.ylsk.mobilecheck.service;

import com.ylsk.check.domain.ReportApprLog;
import com.ylsk.check.domain.dto.CheckRecordDTO;
import com.ylsk.check.domain.dto.RectificationReviewDTO;
import com.ylsk.check.domain.so.CheckRecordSO;
import com.ylsk.check.domain.so.ReportInfoSO;
import com.ylsk.check.domain.vo.*;

import java.util.List;

public interface ApparitorMobileService {

    /**
     * 项目报备列表
     * @param reportInfoSO
     * @return
     */
    public List<ReportInfoVO> listReportInfo(ReportInfoSO reportInfoSO);

    /**
     * 项目报备不分页列表
     * @param reportInfoSO
     * @return
     */
    public List<ReportInfoVO> selectListReportInfo(ReportInfoSO reportInfoSO);
    /**
     * 审批项目报备
     * @param reportApprLog
     * @return
     */
    public int apprReportInfo(ReportApprLog reportApprLog);

    /**
     * 获取施工检查项
     */
    public List<CheckItemVO> selectCheckItemList();


    /**
     * 施工检查列表
     * @param checkRecordSO
     * @return
     */
    public List<?> listCheckRecord(CheckRecordSO checkRecordSO);

    /**
     * 新增施工检查
     * @param checkRecordDTO
     * @return
     */
    public  int saveCheckRecord(CheckRecordDTO checkRecordDTO);

    /**
     * 施工检查详情
     * @param checkRecordId
     * @return
     */
    public CheckRecordDetailVO getCheckRecord(Long checkRecordId);


    /**
     * 施工检查问题详情
     * @param checkProblemId
     * @return
     */
    public CheckProblemVO getCheckProblem(Long checkProblemId);

    /**
     * 今日施工 列表
     * @param checkRecordSO
     * @return
     */
    public List<TodayCheckTaskVO> selectTodayCheckTaskList(CheckRecordSO checkRecordSO);


    /**
     * 新增整改复查记录
     * @param rectificationReviewDTO
     * @return
     */
    public int saveRectificationReview(RectificationReviewDTO rectificationReviewDTO);


    /**
     * 施工完成列表
     * @param reportInfoSO
     * @return
     */
    public List<ReportInfoVO> listProjectEnd(ReportInfoSO reportInfoSO);
}
